#define   _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <stdio.h>
//
//int main() {
//    double p, w;
//    int s;
//    scanf("%lf %lf %d", &p, &w, &s);
//    double d = 0.0;
//    if (s < 250) {
//        d = 0.0;
//    }
//    else if (s >= 250 && s < 500) {
//        d = 0.02;
//    }
//    else if (s >= 500 && s < 1000) {
//        d = 0.05;
//    }
//    else if (s >= 1000 && s < 2000) {
//        d = 0.08;
//    }
//    else if (s >= 2000 && s < 3000) {
//        d = 0.1;
//    }
//    else if (s >= 3000) {
//        d = 0.15;
//    }
//    double freight = p * w * s * (1 - d);
//    printf("%.4f\n", freight);
//    return 0;
//}



//#include<stdio.h>
//int main()
//{
//    int a = 0;
//    int b = 0;
//    int c = 0;
//    scanf("%d%d%d", &a, &b, &c);
//    if (a > b && b > c)
//    {
//        printf("%d", a);
//    }
//    if (b > a && b > c)
//    {
//        printf("%d\n", b);
//    }
//    if (c > a && c > b)
//    {
//        printf("%d\n", c);
//    }
//    return 0;
//
//}



//
//#include<stdio.h>
//int main() {
//    int x, y;
//    scanf("%d", &x);
//    if (x < 1) {
//        y = x;
//        printf("%d\n", y);
//    }
//    else if (1 < x && x < 10)
//    {
//        y = 2 * x - 1;
//        printf("%d\n", y);
//    }
//    else {
//        y = 3 * x - 11;
//        printf("%d\n", y);
//    }
//
//    return 0;
//}
//


//#include<stdio.h>
//int main()
//{
//    int score;
//    scanf("%d", &score);
//    if (score >= 0 && score <= 100)
//    {
//        if (score >= 90)
//        {
//            printf("A\n");
//        }
//        else if (score >= 80)
//        {
//            printf("B\n");
//
//        }
//        else if (score >= 70)
//        {
//            printf("C\n");
//
//        }
//        else if (score >= 60)
//        {
//            printf("D\n");
//        }
//        else {
//            printf("E\n");
//        }
//    }
//
//
//    return 0;
//}
//
//




//
//#include<stdio.h>
//int main()
//{
//    double x = 0;
//    double y = 0;
//    int a = 0;
//    double num = 0;
//    scanf("%lf%d%lf", &x, &a, &y);
//    num = x + a % 3 * (int)(x + y) % 2 / 4;
//    printf("%lf\n", num);
//    return 0;
//}



//#define _USE_MATH_DEFINES
//#include<stdio.h>
//#include<math.h>
//int main() {
//    float r, h;
//    scanf("%f%f", &r, &h);
//    printf("%.2f ", 2 * M_PI * r);
//    printf("%.2f ", r * M_PI * r);
//    printf("%.2f ", r * M_PI * r * h);
//    printf("%.2f ", 4 * M_PI * r * r);
//    printf("%.2f\n", (4.0 / 3.0) * M_PI * r * r * r);
//    return 0;
//}



//#include<stdio.h>
//int main() {
//    int num;
//    scanf("%d", &num);
//    int digits = 0;
//    if (num == 0) {
//        digits = 1;
//    }
//    else {
//        while (num > 0) {
//            num /= 10;
//            digits++;
//        }
//    }
//    printf("%d\n", digits);
//
//    for (int i = digits - 1; i >= 0; i--) {
//        int divisor = 1;
//        for (int j = 0; j < i; j++) {
//            divisor *= 10;
//        }
//        int digit = num / divisor;
//        printf("%d ", digit);
//        num %= divisor;
//    }
//    printf("\n");
//    while (num > 0) {
//        printf("%d ", num % 10);
//        num /= 10;
//    }
//    printf("\n");
//
//
//
//
//
//
//    return 0;
//}
//
//


#include <stdio.h>

int main() {
    int num;
    scanf("%d", &num);
    int temp = num;
    int digits = 0;

    if (num == 0) {
        digits = 1;
    }
    else {
        while (temp > 0) {
            temp /= 10;
            digits++;
        }
    }
    printf("%d\n", digits);



    temp = num;
    for (int i = digits - 1; i >= 0; i--) {
        int divisor = 1;
        for (int j = 0; j < i; j++) {
            divisor *= 10;
        }
        int digit = temp / divisor;
        printf("%d ", digit);
        temp %= divisor;
    }
    printf("\n");
    temp = num;
    while (temp > 0) {
        printf("%d ", temp % 10);
        temp /= 10;
    }
    printf("\n");
    return 0;
}





















